<script setup lang="ts">
import InternalIcons from './internal-icons.vue'
// #region snippet
import {
  AngleDown,
  AngleLeft,
  AngleRight,
  AngleUp,
  AnglesLeft,
  AnglesRight,
  ArrowRightArrowLeft,
  ArrowRightFromBracket,
  ArrowRotateLeft,
  ArrowRotateRight,
  ArrowsRotate,
  CalendarR,
  Check,
  CircleCheck,
  CircleExclamation,
  CircleInfo,
  CircleQuestion,
  CircleQuestionR,
  CircleXmark,
  ClockR,
  CloudArrowUp,
  Compress,
  Ellipsis,
  Expand,
  EyeR,
  EyeSlashR,
  FileAudioR,
  FileCodeR,
  FileImageR,
  FileLinesR,
  FileR,
  FileVideoR,
  FileZipperR,
  Filter,
  Flag,
  GripLinesVertical,
  ImageR,
  Indent,
  MagnifyingGlass,
  Minus,
  Moon,
  Outdent,
  Plus,
  Repeat,
  Retweet,
  Spinner,
  SquareMinusR,
  SquarePlusR,
  Sun,
  TrashCanR,
  Upload,
  User,
  Xmark
} from '@vexip-ui/icons'

import type { IconsOptions } from 'vexip-ui'

const icons: IconsOptions = {
  loading: [Spinner, { effect: 'pulse-in' }],
  clear: CircleXmark,
  close: Xmark,
  calendar: CalendarR,
  clock: ClockR,
  exchange: ArrowRightArrowLeft,
  angleUp: AngleUp,
  angleRight: AngleRight,
  angleDown: AngleDown,
  angleLeft: AngleLeft,
  anglesRight: AnglesRight,
  anglesLeft: AnglesLeft,
  retweet: Retweet,
  refresh: ArrowsRotate,
  filter: Filter,
  ellipsis: Ellipsis,
  upload: Upload,
  uploadCloud: CloudArrowUp,
  check: Check,
  help: CircleQuestionR,
  alert: Flag,
  question: CircleQuestion,
  info: CircleInfo,
  success: CircleCheck,
  warning: CircleExclamation,
  error: CircleXmark,
  delete: TrashCanR,
  preview: EyeR,
  image: ImageR,
  plus: Plus,
  minus: Minus,
  plusSquare: SquarePlusR,
  minusSquare: SquareMinusR,
  cipherText: EyeSlashR,
  plainText: EyeR,
  user: User,
  light: Sun,
  dark: Moon,
  signOut: ArrowRightFromBracket,
  indent: Indent,
  outdent: Outdent,
  search: MagnifyingGlass,
  rotateRight: ArrowRotateRight,
  rotateLeft: ArrowRotateLeft,
  flipX: Repeat,
  flipY: [Repeat, { style: 'transform: rotate(90deg)' }],
  zoomIn: Plus,
  zoonOut: Minus,
  fullScreen: Expand,
  resetScreen: Compress,
  dragger: GripLinesVertical,
  file: FileR,
  fileText: FileLinesR,
  fileCode: FileCodeR,
  fileImage: FileImageR,
  fileAudio: FileAudioR,
  fileVideo: FileVideoR,
  fileZip: FileZipperR
}

// #endregion snippet
</script>

<template>
  <ConfigProvider :icons="icons">
    <InternalIcons></InternalIcons>
  </ConfigProvider>
</template>
